﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Sinacor.Infra.Core.ProcessManager.Client.UI;
using Sinacor.Infra.UI.Common;
using PSE.ProcessManager.Common.Process;

namespace Sinacor.UI.Bovespa.ImportacaoExportacao.Communication
{
    public class ProcessoExportacaoMovimentoClube : BaseCommunicationProcess<Sinacor.Process.Bovespa.MovimentoClube.Client.Exportacao>
    {
        #region Eventos

        public event EventHandler ExportacaoConcluida;

        #endregion

        #region Construtor

        public ProcessoExportacaoMovimentoClube(SessionInformation session)
			: base(session)
		{
            this.Process.ExportacaoConcluida += new EventHandler(Process_ExportacaoConcluida);
            this.Connect();
		}

        #endregion

        #region Event Handlers

        private void Process_ExportacaoConcluida(object sender, EventArgs e)
        {
            try
            {
                if (ExportacaoConcluida != null)
                    ExportacaoConcluida(this, new EventArgs());
            }
            catch (Exception ex)
            {
                base.HandleFault(ex);
            }
        }

        #endregion

        #region Metodos

        public void ExportarMovimentoClube(Model.Parameter.FiltroExportacaoMovimentoClube model)
        {
            Translator.ModelToProcessEntity.ExportacaoMovimentoClube translatorRequest;

            try
            {
                translatorRequest = new Translator.ModelToProcessEntity.ExportacaoMovimentoClube();
                this.Process.ExportarMovimentoClube(translatorRequest.ToFiltroExportacaoMovimentoClube(model));
            }
            catch (Exception ex)
            {
                base.HandleFault(ex);
            }
        }

        #endregion
    }
}
